package com.bdqn.spark.chapter05.value

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

object Spark11_RDD_Operator_Transform {
  def main(args: Array[String]): Unit = {
    val sparkConf = new SparkConf()
      .setMaster("local[*]")
      .setAppName("operator-repartition")
    val sc = new SparkContext(sparkConf)

    val sourceRDD: RDD[Int] = sc.makeRDD(List(1, 2, 3, 4, 5, 6), 3)

    // coalesce如果不进行shuffle，扩大分区，不起作用
    // repartition，扩大分区可以，缩小分区，也行

    // 一般情况下：
    // coalesce做分区缩减
    // repartition做分区扩大
    val resultRDD: RDD[Int] = sourceRDD.repartition(2)
    resultRDD.saveAsTextFile("output")

    sc.stop()
  }
}
